/**
 * 金额处理工具js
 */
var moneyCtrl  = new XFApp.client();
XFApp.client.prototype.money = {
		
		 //格式化金额,小数点几位
		 fmoney : function(money,digit){
		    if(!money){
		        return "0.00";
		    }
		    money = money +"";
		    var array = money.split(".");
		    var s =array[0];
		    var r="";
		    var m= s.substring(0,1);
		    if('-'== m){
		        s = s.substring(1);
		    }else {
		        m ="";
		    }
		    var f= s.split("").reverse();
		    for(var i = 0;i< f.length;i++){
		        r += f[i] + ((i + 1) % 3 == 0 && (i + 1) != f.length ? "," : "");
		    }
		    var after = "";
		    if(array.length>1){
		        after = array[1];
		        if(after.length>digit){
		            after =after.substring(0,digit);
		        }
		    }
		    //默认digit位小数
		    var _numamt = m + r.split("").reverse().join("") + (array.length>1?"."+ after:"");
		    var _numamtLen = _numamt.indexOf(".");
		    if(_numamtLen != -1){
			    var _val = _numamt.substring(_numamtLen+1,_numamt.length);
			    if(_val.length < digit){	    	
			        _numamt = _numamt.replace("."+_val,"."+_val+"0");
			    }
			    if(_val.length > digit){
			    	var digt = _val.substring(0,digit);
			    	_numamt = _numamt.replace("."+_val,"."+digt);
			    }
			}else{
				_numamt = _numamt+".00";
			}    
		    return _numamt;
		},
		
		/***
		 * 验证输入的是否是数字和小数点		 
		 * 在输入了两位小数后不允许输入
		 * 调用示例：onkeypress="onKeyDownVali(this);"
		 */
		onKeyDownVali : function(obj){
		       if(obj.value&&obj.value!=""){
		           //0-9 ascii 为48-57,小数点. ascii 为46
			       //var rex = /^(([1-9]\d*)|0)((\.)?\d{0,2})?$/;
			       //先判断是否是零,是否有小数点
			       if(obj.value.indexOf(".")<0){
			    	   // 没有小数点
		              if(obj.value.charAt(0)=="0"){
		                   //只能输入小数点
		                   if(event.keyCode==46){
		                      event.returnValue=true;
		                   }else{
		                      event.returnValue=false; 
		                   }
		              }else if ((event.keyCode>47&&event.keyCode<58)||event.keyCode==46){
		                 event.returnValue=true;
		              }else{
		                 event.returnValue=false;  
		              }
			       }else{
			    	   // 有小数点
			          //0-9
			          var arrnum = obj.value.split("."); 
			
			          if(event.keyCode>47&&event.keyCode<58&&arrnum[1].length<2){
			             event.returnValue=true;
			          }else if(document.selection.createRange().text){
			                if(event.keyCode>47&&event.keyCode<58&&arrnum[1].length<2){
			                    event.returnValue=true;
			                }else{
			                   event.returnValue=false;
			                }
			          }else{
			                event.returnValue=false;
			          }
			       }
		       }else if((event.keyCode>47&&event.keyCode<58)){
		            //第一个数字只能输入数字，不能输入小数点
		            event.returnValue=true;
		       }else{
		            event.returnValue=false;
		       }
		 },
		 
		 
		//将传入的数字检查并进行格式化，
		//然后将没有格式化得值赋给hiddid
		 check_HighFloatF : function (Object,errorId,Desc,hiddid){	
				var valueStr= Object.val();
				if(!valueStr){
					$("#"+hiddid).val("");
					return false;
				}
				if(parseFloat(valueStr)<0.01){
				   $("#"+errorId).html(Desc+"不能小于0");
				   Object.val("") ;
				   $("#"+hiddid).val("");
			   	   return false;
			    }
				
				//有小数位
				if(valueStr.indexOf(".")>0){					
					var pos = valueStr.indexOf(".");
					var num = valueStr.substring(0,pos);
					if(num.length > 10){
						$("#"+errorId).html(Desc+"最多可以输入10位整数");
						Object.val("") ;
						$("#"+hiddid).val("");
						return false;
					}
				}else{ //无小数位
					if(valueStr.length > 10){
						$("#"+errorId).html(Desc+"最多可以输入10位整数");
						Object.val("") ;
						$("#"+hiddid).val("");
						return false;
					}
				}				
				Object.val(valueStr) ;
				var ret = moneyCtrl.money.check_HighFloat(Object,errorId,Desc,hiddid);
				if(ret){
					moneyCtrl.money.onaablur(Object,hiddid);
					return true;
				}else{
					return false;
				}
				  	
		},
		//函数名：check_HighFloat
		// 功能介绍：验证是否为大于0的浮点数并给予提示和焦点定位
		// 参数说明：验证目标的ID和具体含义
		// 返回值：true为合法，false为不合法
		check_HighFloat : function (Object,errorId,Desc,hiddid){
			
		   var strInteger=Object.val();
		   // 将逗号去除掉
		   strInteger = strInteger.replace(/,/g,"");
		   if(Desc==null||Desc=="")Desc="数据";
		   if(strInteger.length==0){
			    $("#"+hiddid).val("");
		 		return false;
		   }else{
				var pattern = /^(([0-9]+\.[0-9]*[1-9][0-9]*)|([0-9]*[1-9][0-9]*\.[0-9]+)|([0-9]*[1-9][0-9]*))$/;
				if(strInteger.match(pattern)==null){
					$("#"+errorId).html(Desc+"请输入一个大于0.01的浮点数");
					Object.val("") ;
					$("#"+hiddid).val("");
					return false;
				}else{
					return true;
				}
		    }
		 } ,
		 // 格式化金额数字后并赋给原对象
		 onaablur : function (o,hiddid){
		    var amt = o.val();
		    // 将逗号去除掉
		    amt = amt.replace(/,/g,"");
		    if(amt!=""){
		    	amt = moneyCtrl.money.addDecimal(amt);
		    	if(parseFloat(amt)>0&&parseFloat(amt)<1){
				   o.val(moneyCtrl.money.fmoney(amt,2));
		    	}else{
		    		
		    	   amt = amt.toLocaleString().replace(/￥/g,"");
		    	   o.val(moneyCtrl.money.fmoney(amt,2));
		    	}
				// 将逗号去除掉
			    amt = amt.replace(/,/g,"");
				//将填入的值赋给隐藏域,以便提交到后台
				if(hiddid != null && hiddid != ''){					
					$("#"+hiddid).val(amt);
				}
			    
			}
		},		
		
		//添加小数 x.xx
		addDecimal : function(_numamt){ 
			if(!_numamt){
		    	return "0.00";
		    }
		    _numamt += "";
			var _numamtLen = _numamt.indexOf(".");
			if(_numamtLen != -1){
			    var _val = _numamt.substring(_numamtLen+1,_numamt.length);
			    if(_val.length < 2){
			        _numamt = _numamt.replace("."+_val,"."+_val+"0");
			    }
			    if(_val.length > 2){
			    	var digit = _val.substring(0,2);
			    	_numamt = _numamt.replace("."+_val,"."+digit);
			    }
			}
			
			// 将逗号去除掉
		    _numamt = _numamt.replace(/,/g,"");
			var numamt = new Number(_numamt);
			numamt = numamt.toFixed(2);
			return numamt;
		},		
}